﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;
using EGuayas.Web.Usuario;
using EntGuayasSLA.BL.Licenciamiento;
using EGuayas.Web.Resources;

namespace EGuayas.Web.Usuario
{
    public partial class pgPromotor : pgBase
    {
        #region Set-Session
        /// <summary>
        /// Lita de items de documento de delegado
        /// </summary>
        protected ItemLista ListaDocDelegado
        {
            get
            {
                if (Session[SessionPage.PageUserAdm + "_pgPromotorLista3"] == null)
                {
                    Session[SessionPage.PageUserAdm + "_pgPromotorLista3"] = new ItemLista();
                }
                return ((ItemLista)Session[SessionPage.PageUserAdm + "_pgPromotorLista3"]);
            }

        } 
        /// <summary>
        /// Lista de documentos al crear nuevo promotor
        /// </summary>
        protected ItemLista ListaDoc
        {
            get
            {
                return ((ItemLista)Session[SessionPage.PageUserAdm + "_pgPromotorLista1"]);
            }
            set
            {
                Session[SessionPage.PageUserAdm + "_pgPromotorLista1"] = value;
            }
        }
        /// <summary>
        /// Información de usuario cuando se crea promotor
        /// </summary>
        protected UsuarioInfo InfoTmp
        {
            get
            {
                UsuarioInfo userGet = new UsuarioInfo("", "", "");
                if (Session[SessionPage.PageAudExt + "_pgPromotorInfoTmp"] != null)
                    userGet = (UsuarioInfo)Session[SessionPage.PageAudExt + "_pgPromotorInfoTmp"];
                return (userGet);
            }

        }       
        #endregion Set-Session    
             
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {

                if (!X.IsAjaxRequest)
                {

                    string idPageSessionUnique = Request["idPage"];
                    string idPromotor = Request["idx1"];
                    string idUsuario  = Request["idx2"];
                    //Setear id de persona
                    this.hddIdPersonaTmp.SetValue(idPromotor);
                    this.hddIdPageSession.SetValue(idPageSessionUnique);
                    this.frmGeneral.Reset();
                    //
                    stoTipoOrganizacion.DataSource = ItemLista.GetItemListaCodigo(Valores.Catalogo_Cod_Organizacion, Valores.Codigo_CHAR_Si);
                    stoTipoOrganizacion.DataBind();

                    if (idUsuario == null)
                    {
                        if (idPageSessionUnique != SessionPage.PageUserReg)
                        idUsuario = GetSessionUsuario.UsuarioId;
                    }
                    if (idPromotor != null & idUsuario != null)
                    {


                        Promotores objPromotor = Promotores.GetEditableRoot(Guid.Parse(idPromotor));
                        ValueFormPersona objVal = new ValueFormPersona(objPromotor.Id.ToString(), Valores.PageEvento_Lectura);
                        string opc = (objPromotor.Ruc != "") ? "PJ" : "PN";

                        Boolean read = (GetSessionPage.GetSession(idPageSessionUnique) != Valores.PageEvento_Modificar) ? true : false;
                        Parroquia objParroquia = Parroquia.GetEditableRoot(Guid.Parse(objPromotor.ParroquiaId));
                        objVal.IdUser = idUsuario;
                        objVal.Identificacion = objPromotor.Identificacion;
                        objVal.Nombre = objPromotor.Nombre;
                        objVal.Apellido = objPromotor.Apellido;
                        objVal.Email = objPromotor.Email;
                        objVal.Direccion = objPromotor.Direccion;
                        objVal.Provincia = objParroquia.ProvinciaId;
                        objVal.Canton = objParroquia.CantonId;
                        objVal.Parroquia = objPromotor.ParroquiaId;
                        objVal.Ruc = objPromotor.Ruc;
                        objVal.Razonsocial = objPromotor.Razonsocial;
                        objVal.RepresentanteLegal = objPromotor.RepresentanteLegal;
                        objVal.Telefono = objPromotor.Telefono;
                        objVal.TelefonoCelular = objPromotor.TelefonoCelular;
                        objVal.Fax = objPromotor.Fax;
                        objVal.Organizacion = objPromotor.TipoOrganizacion;
                        if (objPromotor.Delegado != "")
                        {
                            Persona objDelegado = Persona.GetEditableRoot(Guid.Parse(objPromotor.Delegado));
                            Parroquia objParroquiaDelegado = Parroquia.GetEditableRoot(Guid.Parse(objDelegado.ParroquiaId));
                            objVal.Id_delegado = objDelegado.Id.ToString();
                            objVal.Identificacion_delegado = objDelegado.Identificacion;
                            objVal.Nombre_delegado = objDelegado.Nombre;
                            objVal.Apellido_delegado = objDelegado.Apellido;
                            objVal.Email_delegado = objDelegado.Email;
                            objVal.Direccion_delegado = objDelegado.Direccion;
                            X.Js.Call("AppUser.Persona.SetLocalidad", "wuc_delegado", objParroquiaDelegado.ProvinciaId, objParroquiaDelegado.CantonId, objParroquiaDelegado.Id, objDelegado.Nacionalidad, true);
                            X.Js.Call("pgFn.OnlyShowPanelDelegado", true);
                        }
                        else
                        {
                            X.Js.Call("pgFn.OnlyShowPanelDelegado", false);
                        }
                        Usuarios user = Usuarios.GetEditableRoot(idUsuario);
                        objVal.Login = user.Login;
                        objVal.password1 = user.Clave;
                        objVal.password2 = user.Clave;

                        objVal.numDoc = "1";


                        X.Js.Call("pgFn.UpdatePanelSelectCbbPersona", opc, read);
                        X.Js.Call("AppUser.Persona.SetLocalidad", "wuc_persona", objParroquia.ProvinciaId, objParroquia.CantonId, objParroquia.Id, objPromotor.Nacionalidad, true);
                        this.frmGeneral.SetValues(objVal);
                        cbbTipoOrga.SetValueAndFireSelect(objPromotor.TipoOrganizacion);
                        //Setear id de persona
                        this.hddIdPersonaTmp.SetValue(objPromotor.PersonaId);

                    }
                    if (idPageSessionUnique != null)
                    {
                            switch (GetSessionPage.GetSession(idPageSessionUnique))
                            {
                                case Valores.PageEvento_Eliminar:
                                    this.btnModificar.Hide();
                                    this.btnSaveForm.Hide();
                                    this.btnEliminar.Show();
                                    this.btnCheckRuc.Hide();
                                    X.Js.Call("pgFn.CollapsePanels", true);
                                    break;

                                case Valores.PageEvento_Lectura:
                                    this.btnModificar.Hide();
                                    this.btnSaveForm.Hide();
                                    this.btnEliminar.Hide();
                                    this.btnCheckRuc.Hide();
                                    X.Js.Call("pgFn.CollapsePanels", true);
                                    break;

                                case Valores.PageEvento_Modificar:
                                    this.btnModificar.Show();
                                    this.btnSaveForm.Hide();
                                    this.btnEliminar.Hide();
                                    X.Js.Call("pgFn.UpdatePanelError");
                                    break;
                                default:

                                    SetSessionPage setSession = new SetSessionPage(idPageSessionUnique, Valores.PageEvento_Nuevo);
                                    UsuarioInfo infoUser = InfoTmp;
                                    if (infoUser.Estado == Valores.Codigo_Estado_Activo)
                                    {
                                        ExtNet.Js.Call("pgFn.setDatosWucPersona", infoUser.Identificacion, infoUser.Nombre, infoUser.Apellido);
                                    }
                                    X.Js.Call("pgFn.OnlyShowPanelDelegado", false);
                                    this.btnSaveForm.Show();
                                    this.btnModificar.Hide();
                                    this.btnEliminar.Hide();
                                    break;

                               }
                     }
                     else
                     {
                         SetSessionPage setSession = new SetSessionPage(idPageSessionUnique, Valores.PageEvento_Nuevo);
                         UsuarioInfo infoUser = InfoTmp;
                         if (infoUser.Estado == Valores.Codigo_Estado_Activo)
                         {
                             ExtNet.Js.Call("pgFn.setDatosWucPersona", infoUser.Identificacion, infoUser.Nombre, infoUser.Apellido);
                         }
                         X.Js.Call("pgFn.OnlyShowPanelDelegado", false);
                         this.btnSaveForm.Show();
                         this.btnModificar.Hide();
                         this.btnEliminar.Hide();

                     }

                }

            }
            catch (Exception ex)
            {
                this.btnSaveForm.Hide();
                this.btnModificar.Hide();
                this.btnEliminar.Hide();
                RegistrarLog(ex);
            }
        }
        /// <summary>
        /// Evento Modificar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ModificarClick(object sender, DirectEventArgs e)
        {
            try
            {

                string gridJson = e.ExtraParams["prmValues"];
                var dataItem = JSON.Deserialize<Dictionary<string, string>>(gridJson);
                Guid Id = Guid.Parse(dataItem["Id"]);
                Promotores objPromotor = Promotores.GetEditableRoot(Id);
                objPromotor.Identificacion = dataItem["Identificacion"];
                objPromotor.Nombre = dataItem["Nombre"];
                objPromotor.Apellido = dataItem["Apellido"];
                objPromotor.Direccion = dataItem["Direccion"];
                objPromotor.Email = dataItem["Email"];
                objPromotor.Ruc = dataItem["Ruc"];
                if (dataItem.ContainsKey("Razonsocial"))
                {
                    objPromotor.Razonsocial = dataItem["Razonsocial"];
                }
                if (dataItem.ContainsKey("RepresentanteLegal"))
                {
                    objPromotor.RepresentanteLegal = dataItem["RepresentanteLegal"];
                }
                objPromotor.Telefono = dataItem["Telefono"];
                objPromotor.TelefonoCelular = dataItem["TelefonoCelular"];
                objPromotor.Fax = dataItem["Fax"];
                objPromotor.ParroquiaId = dataItem["Parroquia"];
                if (dataItem.ContainsKey("Organizacion"))
                {
                    objPromotor.TipoOrganizacion = dataItem["Organizacion"];
                }
                Usuarios objUsuario = Usuarios.GetEditableRoot(dataItem["IdUser"]);
                objUsuario.Login = dataItem["Login"];
                objUsuario.Clave =Seguridad.Encriptar(dataItem["password1"]);
                if (e.ExtraParams["ifDelegado"] == "true")
                {
                    Persona objDelegado;
                    //Caso de no existir crear nuevo
                    if (dataItem["Id_delegado"] == "")
                    {
                        objDelegado = Persona.NewEditableRoot();
                        objDelegado.Id = System.Guid.NewGuid();
                    }
                    else
                    {
                        //Caso de existir modificar
                        Id = Guid.Parse(dataItem["Id_delegado"]);
                        objDelegado = Persona.GetEditableRoot(Id);

                    }

                    objDelegado.Identificacion = dataItem["Identificacion_delegado"];
                    objDelegado.Nombre = dataItem["Nombre_delegado"];
                    objDelegado.Apellido = dataItem["Apellido_delegado"];
                    objDelegado.Direccion = dataItem["Direccion_delegado"];
                    objDelegado.Email = dataItem["Email_delegado"];
                    objDelegado.ParroquiaId = dataItem["Parroquia_delegado"];
                    objDelegado.Nacionalidad = dataItem["Nacionalidad_delegado"];
                    objDelegado.Save();
                    objPromotor.Delegado = objDelegado.Id.ToString();
                    objPromotor.Save();
                }
                else
                {
                    //En caso de estar asociado a un delegado, y no haber seleccionado checkdelegado
                    //Eliminar documentos de delegado y persona delegado.

                    if (objPromotor.Delegado != "")
                    {
                        int nCount = 0;
                        wucDocUser obj = (wucDocUser)this.uc_doc_U002.UserControls[0];
                        ArchivoLista docItems = ArchivoLista.GetArchivoLista(objPromotor.PersonaId, out nCount);
                        Id = Guid.Parse(objPromotor.Delegado);
                        Persona objDelegado = Persona.GetEditableRoot(Id);
                        //
                        objPromotor.Delegado = "";
                        objPromotor.Save();
                        //Buscar item de documento tipo delegado
                        foreach (ItemInfo itemIfo in ListaDocDelegado)
                        {
                            ArchivoInfo itemDelete = docItems.FirstOrDefault(r => r.TipoDocumento == itemIfo.Id.ToString());
                            if (itemDelete != null)
                            {
                                obj.DeleteDocumento(itemDelete.ArchivoId);
                            }
                        }
                        // 
                        objDelegado.Delete();
                        objDelegado.Save();

                    }
                    else
                    {
                        objPromotor.Save();
                    }

                }
                objUsuario.Save();
                btnModificar.Disable();

                X.Js.Call("pgFn.ViewGrid", "Promotor modificado");

            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
       
        /// <summary>
        /// Crear un nuevo promotor
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void SaveClick(object sender, DirectEventArgs e)
        {
            try
            {

                string gridJson = e.ExtraParams["prmValues"];
                var dataItem = JSON.Deserialize<Dictionary<string, string>>(gridJson);
                var listaRoles = RolLista.GetRolLista();
                var infoRol = listaRoles.FirstOrDefault(r => r.Codigo == Valores.Codigo_Rol_Promotor);

                Promotores objPromotor = Promotores.NewEditableRoot();
                objPromotor.Id = System.Guid.NewGuid();
                objPromotor.PersonaId = System.Guid.NewGuid().ToString();
                objPromotor.Identificacion = dataItem["Identificacion"];
                objPromotor.Nombre = dataItem["Nombre"];
                objPromotor.Apellido = dataItem["Apellido"];
                objPromotor.Direccion = dataItem["Direccion"];
                objPromotor.Email = dataItem["Email"];
                //
                objPromotor.Ruc = dataItem["Ruc"];
                if (dataItem.ContainsKey("Razonsocial"))
                {
                    objPromotor.Razonsocial = dataItem["Razonsocial"];
                    objPromotor.RepresentanteLegal = objPromotor.Nombre + " " + objPromotor.Apellido; //dataItem["RepresentanteLegal"]
                }
                objPromotor.Telefono = dataItem["Telefono"];
                objPromotor.TelefonoCelular = dataItem["TelefonoCelular"];
                objPromotor.Fax = dataItem["Fax"];
                objPromotor.ParroquiaId = dataItem["Parroquia"];
                objPromotor.Nacionalidad = dataItem["Nacionalidad"];
                if (dataItem.ContainsKey("Organizacion"))
                {
                    objPromotor.TipoOrganizacion = dataItem["Organizacion"];
                }

                Usuarios objUsuario = Usuarios.NewEditableRoot();
                objUsuario.Id = System.Guid.NewGuid();
                objUsuario.PersonaId = objPromotor.PersonaId;
                objUsuario.Login = dataItem["Login"];
                objUsuario.Clave =Seguridad.Encriptar( dataItem["password1"]);
                objUsuario.RolId = infoRol.Id.ToString();
                objUsuario.FechaCreacion = DateTime.Now;

                //Crear un usuario en proceso de auditoria
                UsuarioInfo infoUser = InfoTmp;
                if (infoUser.Estado == Valores.Codigo_Estado_Activo)
                {
                    objUsuario.Estado = Valores.Codigo_Estado_Activo;

                }
                else
                {
                    objUsuario.Estado = Valores.Codigo_Estado_PreRegistrado;
                }

                //Crear delegado
                if (e.ExtraParams["ifDelegado"] == "true")
                {
                    Persona objDelegado = Persona.NewEditableRoot();
                    PersonaCriteria criteria = PersonaCriteria.NewPersonaCriteria();
                    criteria.Cedula = dataItem["Identificacion_delegado"];
                    Persona objPersonaSeek = Persona.GetEditableRoot(criteria);
                    if (objPersonaSeek.Identificacion != "")
                    {
                        objPromotor.Delegado = objPersonaSeek.Id.ToString();
                       
                    }
                    else
                    {
                        objDelegado.Id = System.Guid.NewGuid();
                        objDelegado.Identificacion = dataItem["Identificacion_delegado"];
                        objDelegado.Nombre = dataItem["Nombre_delegado"];
                        objDelegado.Apellido = dataItem["Apellido_delegado"];
                        objDelegado.Direccion = dataItem["Direccion_delegado"];
                        objDelegado.Email = dataItem["Email_delegado"];
                        objDelegado.ParroquiaId = dataItem["Parroquia_delegado"];
                        objDelegado.Nacionalidad = dataItem["Nacionalidad_delegado"];
                        objDelegado.Save();
                        objPromotor.Delegado = objDelegado.Id.ToString();
                    
                    }
                }
                objPromotor.Save();
                objUsuario.Save();
                foreach (var item in ListaDoc)
                {
                    Documentos objDoc = Documentos.NewEditableRoot();
                    objDoc.Id = System.Guid.NewGuid();
                    objDoc.ArchivoId = item.ArchivoId;
                    objDoc.Tipo = item.Id.ToString();
                    objDoc.PersonaId = objPromotor.PersonaId;
                    objDoc.Save();
                }
                if (infoUser.Estado == Valores.Codigo_Estado_Activo)
                {
                    SendMail(objPromotor);
                }
                else
                {
                    SendMail(objUsuario, objPromotor.Email);
                }
                btnSaveForm.Disable();

                if (infoUser.Estado == Valores.Codigo_Estado_Activo)
                {
                    //Funcion invocada desde pagina auditoria Externas
                    X.Js.Call("pgFn.CloseWinNew", objPromotor.Identificacion);
                }
                else
                {
                    //ReadOnly controles
                    X.Js.Call("pgFn.SetReadOnlyOffLine");
                    if (Request["idPage"] == SessionPage.PageUserReg)
                    {
                        var rutaUrl = "PgUndefined.aspx?viewToolBar=false&msg=" +
                                      "Su cuenta de usuario está en revisión, revise su correo electrónico para continuar con el registro.";
                        X.Js.Call("AppGlobalJs.redirectPage",rutaUrl);
                    }
                    
                    else
                        X.Msg.Show(new MessageBoxConfig() { Message = Mensajes.MensajeCuentaCreada, Title = "Registro", Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO });
                }

            }
            catch (Exception ex)
            {
                RegistrarLog(ex);

            }
        }
        /// <summary>
        /// Eliminar promotor
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void EliminarClick(object sender, DirectEventArgs e)
        {
            try
            {
                string gridJson = e.ExtraParams["prmValues"];
                var dataItem = JSON.Deserialize<Dictionary<string, string>>(gridJson);
                Guid Id = Guid.Parse(dataItem["Id"]);
                Promotores objPromotor = Promotores.GetEditableRoot(Id);

                Usuarios objUsuario = Usuarios.GetEditableRoot(dataItem["IdUser"]);
                objUsuario.Delete();
                objUsuario.Save();
                //
                int nCount = 0;
                //ListaDocLectura = ArchivoLista.GetArchivoLista(objPromotor.PersonaId, out nCount);
                //DeleteAllFiles(ListaDocLectura);
                wucDocUser obj = (wucDocUser)this.uc_doc_U002.UserControls[0];
                obj.DeleteAllFiles(ArchivoLista.GetArchivoLista(objPromotor.PersonaId, out nCount));

                //
                if (objPromotor.Delegado != "")
                {
                    Persona objDelegado = Persona.GetEditableRoot(Guid.Parse(objPromotor.Delegado));
                    objPromotor.Delegado = "";
                    objPromotor.Save();
                    //
                    objDelegado.Delete();
                    objDelegado.Save();
                }
                //
                objPromotor.Delete();
                objPromotor.Save();
                btnEliminar.Disable();
                X.Js.Call("pgFn.ViewGrid", "Promotor eliminado");
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);

            }
        }
        private void SendMail(Usuarios objUsuario, string mail)
        {
            try
            {
                string sTxtMail = string.Format("Estimado Usuario.<br/>  ");
                sTxtMail += string.Format("Bienvenido a Plataforma de Licenciamiento, Auditoría y Seguimiento Ambiental del Gobierno Provincial del Guayas denominado Plataforma PLASA.");
                sTxtMail += string.Format("<br/><br/><b>A continuación <a href=\"{0}Usuario/pgValidaCorreo.aspx?idu={1}\">Ingrese aquí </a>para validar su correo electrónico</b>", ConfigurationManager.AppSettings.Get("Url"), objUsuario.Id);
                sTxtMail += string.Format("<br/><br/>Este e-mail es autogenerado por favor no responder al mismo. <br/><br/>Dirección de Medio Ambiente<br/>GOBIERNO PROVINCIAL DEL GUAYAS");
                MyMail.Enviar("", mail, "Validación de correo electrónico", sTxtMail, true, "Notificación link asociado a correo");
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        private void SendMail(Promotores objPromotor)
        {
            try
            {
            string sTxtMail = string.Format("Buen día Sr(a) {0} {1}:<br/>{2}", objPromotor.Nombre, objPromotor.Apellido, "Se le comunica de manera más comedida que se require que se modifique los archivos que a continuación se listan, con el proposito de <b>ACTIVAR</b> usuario que le corresponde.<br/>");

            MyMail.Enviar("", objPromotor.Email, "Notificación archivos para activación de usuario", sTxtMail, true, "Notificación modificar bloque de archivos asociados a promotor");
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        #region OnComponentAdded
        /// <summary>
        /// Crear wuc delegado
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void PanelDelegadoAdd(object sender, ComponentAddedEventArgs e)
        {
            try{
            string idPageSessionUnique = Request["idPage"];
            Ext.Net.FormPanel pnl = (Ext.Net.FormPanel)e.Control;
            if (pnl.CustomConfig.Count == 0)
                pnl.CustomConfig.Add(new ConfigItem(pnl.Parent.ID, idPageSessionUnique, ParameterMode.Value));

            if (X.IsAjaxRequest)
            {
                return;
            }
            
            pnl.Title = "Datos de Delegado";
            pnl.Icon = Icon.UserOrange;
            pnl.Hidden = true;
            pnl.Listeners.BeforeRender.Handler = "AppUser.Persona.SetFormName('delegado',this);";
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void OnDocUserAdded(object sender, ComponentAddedEventArgs e)
        {
            try{
            string idPageSessionUnique = Request["idPage"];
            Ext.Net.Panel panel = (Ext.Net.Panel)e.Control;
            SetCustomConfigWucPage(panel, idPageSessionUnique);
            SetCustomConfig(panel, panel.Parent.ID + "idPers", Request["idx1"]);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void OnCuentaAdded(object sender, ComponentAddedEventArgs e)
        {
            try{
            string idPageSessionUnique = Request["idPage"];
            Ext.Net.FormPanel panel = (Ext.Net.FormPanel)e.Control;
            SetCustomConfigWucPage(panel, idPageSessionUnique);
            SetCustomConfig(panel, panel.Parent.ID + "idPers", Request["idx1"]);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }

        }
        protected void OnPersonaAdded(object sender, ComponentAddedEventArgs e)
        {
            try
            {
                string idPageSessionUnique = Request["idPage"];
                Ext.Net.FormPanel panel = (Ext.Net.FormPanel)e.Control;
                SetCustomConfigWucPage(panel, idPageSessionUnique);
                SetCustomConfig(panel, panel.Parent.ID + "idPers", Request["idx1"]);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        #endregion
        protected void CheckRuc(object sender, DirectEventArgs e)
        {
            try
            {

                Session["RUCPROMOTOR"] = e.ExtraParams["txtRuc"];
                Promotores objPromotor = Promotores.GetEditableRoot(e.ExtraParams["txtRuc"]);
                if (objPromotor.Identificacion != "")
                {
                    this.txtRazonS.Text = objPromotor.Razonsocial;
                    this.cbbTipoOrga.SetValueAndFireSelect(objPromotor.TipoOrganizacion);
                    this.txtRazonS.ReadOnly = true;
                    this.cbbTipoOrga.ReadOnly = true;                   
                    this.txtRuc.ReadOnly = true;
                    this.btnCheckRuc.Disable();
                    DisableFormPerJur();
                }
                else
                {
                    this.txtRazonS.ReadOnly = false;
                    this.cbbTipoOrga.ReadOnly = false;
                    this.txtRuc.ReadOnly = false;
                    DisableFormPerJur();

                }
               

            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

        private void DisableFormPerJur()
        {
            if (this.txtRazonS.Enabled)
                this.txtRazonS.Enable();
            if (this.cbbTipoOrga.Enabled)
                this.cbbTipoOrga.Enable();
        
        }
     }
    
    class ValueFormPersona
    {
        public string Evento { get; set; }
        public string Organizacion { get; set; }
        public string IdUser { get; set; }
        public string Id { get; set; }
        public string Identificacion { get; set; }
        public string Nombre { get;  set; }
        public string Apellido { get;  set; }
        public string Email { get;  set; }
        public string Direccion { get;  set; }
        public string Provincia { get;  set; }
        public object[] _Provincia_state { get; set; }
        public string Canton { get;  set; }
        public string _Canton_state { get;  set; }
        public string Parroquia { get;  set; }
        public object[] _Parroquia_state { get; set; }
        public object[] _cbxTipoPersona_state { get; set; }
        public string Nacionalidad { get; set; }       
        //
        public string Id_delegado { get; set; }
        public string Identificacion_delegado { get; set; }
        public string Nombre_delegado { get; set; }
        public string Apellido_delegado { get; set; }
        public string Email_delegado { get; set; }
        public string Direccion_delegado { get; set; }
        public string Provincia_delegado { get; set; }
        public object[] _Provincia_state_delegado { get; set; }
        public string Canton_delegado { get; set; }
        public string _Canton_state_delegado { get; set; }
        public string Parroquia_delegado { get; set; }
        public object[] _Parroquia_state_delegado { get; set; }
        public string Nacionalidad_delegado { get; set; }
        //
        public string Ruc { get;  set; }
        public string Razonsocial { get;  set; }
        public string RepresentanteLegal { get;  set; }
        public string Telefono { get;  set; }
        public string TelefonoCelular { get;  set; }
        public string Fax { get;  set; }
        public string Login { get;  set; }
        public string password1 { get;  set; }
        public string password2 { get; set; }
        public string numDoc { get;  set; }

        public ValueFormPersona(string _id,string _evt)
        {
          
            Id = _id;
            Evento = _evt;
        }

    }
}